home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.27-7 / scripts / checksyscalls.sh < prev    next >
Encoding:
Linux/UNIX/POSIX Shell Script  |  2008-10-09  |  3.1 KB  |  124 lines

  1. #!/bin/sh
  2. #
  3. # Check if current architecture are missing any function calls compared
  4. # to i386.
  5. # i386 define a number of legacy system calls that are i386 specific
  6. # and listed below so they are ignored.
  7. #
  8. # Usage:
  9. # syscallchk gcc gcc-options
  10. #
  11.  
  12. ignore_list() {
  13. cat << EOF
  14. #include <asm/types.h>
  15. #include <asm/unistd.h>
  16.  
  17. /* System calls for 32-bit kernels only */
  18. #if BITS_PER_LONG == 64
  19. #define __IGNORE_sendfile64
  20. #define __IGNORE_ftruncate64
  21. #define __IGNORE_truncate64
  22. #define __IGNORE_stat64
  23. #define __IGNORE_lstat64
  24. #define __IGNORE_fstat64
  25. #define __IGNORE_fcntl64
  26. #define __IGNORE_fadvise64_64
  27. #define __IGNORE_fstatat64
  28. #define __IGNORE_fstatfs64
  29. #define __IGNORE_statfs64
  30. #endif
  31.  
  32. /* i386-specific or historical system calls */
  33. #define __IGNORE_break
  34. #define __IGNORE_stty
  35. #define __IGNORE_gtty
  36. #define __IGNORE_ftime
  37. #define __IGNORE_prof
  38. #define __IGNORE_lock
  39. #define __IGNORE_mpx
  40. #define __IGNORE_ulimit
  41. #define __IGNORE_profil
  42. #define __IGNORE_ioperm
  43. #define __IGNORE_iopl
  44. #define __IGNORE_idle
  45. #define __IGNORE_modify_ldt
  46. #define __IGNORE_ugetrlimit
  47. #define __IGNORE_mmap2
  48. #define __IGNORE_vm86
  49. #define __IGNORE_vm86old
  50. #define __IGNORE_set_thread_area
  51. #define __IGNORE_get_thread_area
  52. #define __IGNORE_madvise1
  53. #define __IGNORE_oldstat
  54. #define __IGNORE_oldfstat
  55. #define __IGNORE_oldlstat
  56. #define __IGNORE_oldolduname
  57. #define __IGNORE_olduname
  58. #define __IGNORE_umount2
  59. #define __IGNORE_umount
  60. #define __IGNORE_waitpid
  61. #define __IGNORE_stime
  62. #define __IGNORE_nice
  63. #define __IGNORE_signal
  64. #define __IGNORE_sigaction
  65. #define __IGNORE_sgetmask
  66. #define __IGNORE_sigsuspend
  67. #define __IGNORE_sigpending
  68. #define __IGNORE_ssetmask
  69. #define __IGNORE_readdir
  70. #define __IGNORE_socketcall
  71. #define __IGNORE_ipc
  72. #define __IGNORE_sigreturn
  73. #define __IGNORE_sigprocmask
  74. #define __IGNORE_bdflush
  75. #define __IGNORE__llseek
  76. #define __IGNORE__newselect
  77. #define __IGNORE_create_module
  78. #define __IGNORE_delete_module
  79. #define __IGNORE_query_module
  80. #define __IGNORE_get_kernel_syms
  81. /* ... including the "new" 32-bit uid syscalls */
  82. #define __IGNORE_lchown32
  83. #define __IGNORE_getuid32
  84. #define __IGNORE_getgid32
  85. #define __IGNORE_geteuid32
  86. #define __IGNORE_getegid32
  87. #define __IGNORE_setreuid32
  88. #define __IGNORE_setregid32
  89. #define __IGNORE_getgroups32
  90. #define __IGNORE_setgroups32
  91. #define __IGNORE_fchown32
  92. #define __IGNORE_setresuid32
  93. #define __IGNORE_getresuid32
  94. #define __IGNORE_setresgid32
  95. #define __IGNORE_getresgid32
  96. #define __IGNORE_chown32
  97. #define __IGNORE_setuid32
  98. #define __IGNORE_setgid32
  99. #define __IGNORE_setfsuid32
  100. #define __IGNORE_setfsgid32
  101.  
  102. /* sync_file_range had a stupid ABI. Allow sync_file_range2 instead */
  103. #ifdef __NR_sync_file_range2
  104. #define __IGNORE_sync_file_range
  105. #endif
  106.  
  107. /* Unmerged syscalls for AFS, STREAMS, etc. */
  108. #define __IGNORE_afs_syscall
  109. #define __IGNORE_getpmsg
  110. #define __IGNORE_putpmsg
  111. #define __IGNORE_vserver
  112. EOF
  113. }
  114.  
  115. syscall_list() {
  116. sed -n -e '/^\#define/ { s/[^_]*__NR_\([^[:space:]]*\).*/\
  117. \#if !defined \(__NR_\1\) \&\& !defined \(__IGNORE_\1\)\
  118. \#warning syscall \1 not implemented\
  119. \#endif/p }' $1
  120. }
  121.  
  122. (ignore_list && syscall_list ${srctree}/include/asm-x86/unistd_32.h) | \
  123. $* -E -x c - > /dev/null
  124.